package br.furb.model.negocio;

import java.io.Serializable;

public class ItemEstoque implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1122550001837154950L;
	
	private String descricao;
	private int quantidade;
	private double valor;
	
	public ItemEstoque() {
		this.setDescricao("");
		this.setQuantidade(0);
		this.setValor(0.0);
	}
	
	public ItemEstoque(String descricao, int quantidade, double valor) {
		super();
		this.setDescricao(descricao);
		this.setQuantidade(quantidade);
		this.setValor(valor);
	}
	
	public String getDescricao() {
		return descricao;
	}
	public int getQuantidade() {
		return quantidade;
	}
	public double getValor() {
		return valor;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}
	public void setValor(double valor) {
		this.valor = valor;
	}
	
	@Override
	public boolean equals(Object obj) {
		if (obj == null) return false;
		if (this == obj) return true;
		
		if (obj instanceof ItemEstoque) {
			ItemEstoque aux = (ItemEstoque) obj;
			return (this.descricao != null && this.descricao.equals(aux.getDescricao()));
		}
		
		return false;
	}
	
	@Override
	public String toString() {
		return this.descricao;
	}
	
	@Override
	public int hashCode() {
		return (this.descricao != null ? this.descricao.hashCode() : super.hashCode());
	}
	
	public double getValorTotal() {
		return (this.valor * this.quantidade);
	}
	
	public void addQuantidade(int v) {
		this.quantidade += v;
	}
	
	public void DescrementaQuantidade() {
		this.quantidade--;
	}
}
